

//================================================================================================================================
// code values for Media Cente status changes - these are the codes used in the tag table
//================================================================================================================================
#define DP_FS_DVD 1
#define DP_FS_EXTENSIBILITY 2
#define DP_FS_GUIDE 3
#define DP_FS_HOME 4
#define DP_FS_MUSIC 5
#define DP_FS_PHOTOS 6
#define DP_FS_RADIO 7
#define DP_FS_RECORDEDSHOWS 8
#define DP_FS_TV 9
#define DP_FS_UNKNOWN 10
#define DP_FS_VIDEOS 11

//================================================================================================================================
// Entry numbers in the tag table for each of the possible Media Centre tags
//================================================================================================================================
#define DP_TAG_Status 0
#define DP_TAG_Application 1
#define DP_TAG_ArtistName 2
#define DP_TAG_CallingPartyName 3
#define DP_TAG_CallingPartyNumber 4 
#define DP_TAG_CD 5
#define DP_TAG_CurrentPicture 6
#define DP_TAG_DialogVisible 7
#define DP_TAG_DiscWriter_ProgressTimeChanged 8
#define DP_TAG_DiscWriter_ProgressPercentageChanged 9
#define DP_TAG_DiscWriter_SelectedFormat 10
#define DP_TAG_DiscWriter_Start 11
#define DP_TAG_DiscWriter_Stop 12
#define DP_TAG_DVD 13
#define DP_TAG_Ejecting 14
#define DP_TAG_EndSession 15
#define DP_TAG_Error 16
#define DP_TAG_FF1 17
#define DP_TAG_FF2 18
#define DP_TAG_FF3 19
#define DP_TAG_FS_DVD 20
#define DP_TAG_FS_Extensibility 21
#define DP_TAG_FS_Guide 22
#define DP_TAG_FS_Home 23
#define DP_TAG_FS_Music  24
#define DP_TAG_FS_Photos 25
#define DP_TAG_FS_Radio 26
#define DP_TAG_FS_RecordedShows 27
#define DP_TAG_FS_TV 28
#define DP_TAG_FS_Unknown 29
#define DP_TAG_FS_Videos 30
#define DP_TAG_GuideLoaded 31
#define DP_TAG_KeyPress 32
#define DP_TAG_MediaName 33
#define DP_TAG_MediaTime 34
#define DP_TAG_MediaTypes 35
#define DP_TAG_MSASPrivateTags 36
#define DP_TAG_Mute 37
#define DP_TAG_Next 38
#define DP_TAG_NextFrame 39
#define DP_TAG_ParentalAdvisoryRating 40
#define DP_TAG_Pause 41
#define DP_TAG_PhoneCall 42
#define DP_TAG_Photos 43
#define DP_TAG_Play 44
#define DP_TAG_Prev 45
#define DP_TAG_PrevFrame 46
#define DP_TAG_PVR 47
#define DP_TAG_Radio 48
#define DP_TAG_RadioFrequency 49
#define DP_TAG_Recording 50
#define DP_TAG_RequestForTuner 51
#define DP_TAG_RepeatSet 52
#define DP_TAG_Rewind1 53
#define DP_TAG_Rewind2 54
#define DP_TAG_Rewind3 55
#define DP_TAG_Shuffle 56
#define DP_TAG_SlowMotion1 57
#define DP_TAG_SlowMotion2 58
#define DP_TAG_SlowMotion3 59
#define DP_TAG_StartSession 60
#define DP_TAG_Stop 61
#define DP_TAG_StreamingContentAudio 62
#define DP_TAG_StreamingContentVideo 63
#define DP_TAG_TitleNumber 64
#define DP_TAG_TotalTracks 65
#define DP_TAG_TrackDuration 66
#define DP_TAG_TrackName 67
#define DP_TAG_TrackNumber 68
#define DP_TAG_TrackTime 69
#define DP_TAG_TransitionTime 70
#define DP_TAG_TVTuner 71
#define DP_TAG_Unknown 72
#define DP_TAG_Visualization 73
#define DP_TAG_Volume 74
#define DP_TAG_TrackTimeLeft 75
#define DP_TAG_ChannelName 76
#define DP_TAG_SessionType 77
#define DP_TAG_NextSessionType 78
#define DP_TAG_RecordingStatus 79
#define DP_TAG_RecordingSession 80
#define DP_TAG_RecordingMediaName 81
#define DP_TAG_RecordingTrackNumber 82
#define DP_TAG_RecordingChannelName 83
#define DP_TAG_PreviousStatusFlag 84
#define DP_TAG_UseBars 85
#define DP_TAG_IPAddress 86
#define DP_TAG_IPPort 87
#define DP_TAG_IPRemote 88

//
// Number of entries in the tag table
//
#define NUM_MTAGS 89
#define MAX_CSTATE 40   // Maximum size of cstate string in tag table
//
// Tag routine definitions
//
extern char * __stdcall MCE_dll_get_channel(char *ichan);

extern char * __stdcall dp_gets(int ptr);
extern int    __stdcall dp_geti(int ptr);
extern char * __stdcall dp_getb(int ptr);
extern int    __stdcall dp_getbi(int ptr);
extern char * __stdcall dp_gett(int ptr);
extern int    __stdcall dp_getlength(int ptr);
extern char * __stdcall dp_gettag(int ptr);
extern char * __stdcall dp_gettype(int ptr);
extern char * __stdcall dp_getdisplay(int ptr);

extern        __stdcall dp_putb(int ptr, char *val);
extern        __stdcall dp_putbi(int ptr, int val);
extern        __stdcall dp_puts(int ptr, char *val);
extern        __stdcall dp_puti(int ptr, int val);
extern        __stdcall dp_putt(int ptr, char *val);
extern        __stdcall dp_puttime(int ptr, int val);

extern        __stdcall dp_gettimes(char * buf, int tag1, int tag2);

extern int    __stdcall dp_open_log();
extern int    __stdcall dp_close_log();
extern        __stdcall dp_log(char * module, char * msg);
extern int    __stdcall dp_read_ini_file();

extern int    __stdcall MCE_dll_check_process(char *procname);
extern int    __stdcall MCE_check_for_reinit();

